using System;
using System.Collections.Generic;
using System.Text;

namespace BT_Q1000
{
    public class ReaderSettings
    {
        private static ReaderSettings readerSettings;

        public static ReaderSettings GetInstance()
        {
            if (readerSettings == null)
                readerSettings = new ReaderSettings();

            return readerSettings;
        }


        #region UsePOI
        private bool usePOI = false;

        /// <summary>
        /// Gets or sets a value indicating whether to use POI to filter data.
        /// </summary>
        /// <value><c>true</c> if [use POI]; otherwise, <c>false</c>.</value>
        public bool UsePOI
        {
            get { return usePOI; }
            set { usePOI = value; }
        } 
        #endregion

        #region StartPoiIndex
        private int startPoiIndex = 100;

        public int StartPoiIndex
        {
            get { return startPoiIndex; }
            set { startPoiIndex = value; }
        } 
        #endregion

        #region EndPoiIndex
        private int endPoiIndex = 0;

        public int EndPoiIndex
        {
            get { return endPoiIndex; }
            set { endPoiIndex = value; }
        } 
        #endregion



        #region UseDateTime
        private bool useDateTime = false;

        public bool UseDateTime
        {
            get { return useDateTime; }
            set { useDateTime = value; }
        } 
        #endregion

        #region StartDateTime
        private DateTime startDateTime = DateTime.Now;

        public DateTime StartDateTime
        {
            get { return startDateTime; }
            set { startDateTime = value; }
        } 
        #endregion

        #region EndDateTime
        private DateTime endDateTime = DateTime.Now;

        public DateTime EndDateTime
        {
            get { return endDateTime; }
            set { endDateTime = value; }
        } 
        #endregion


        #region IgnoredFirstRecords
        private int ignoredFirstRecords;

        /// <summary>
        /// Gets or sets the number of ignored records from the start of the file.
        /// </summary>
        /// <value>The ignored first records.</value>
        public int IgnoredFirstRecords
        {
            get { return ignoredFirstRecords; }
            set { ignoredFirstRecords = value; }
        } 
        #endregion

        #region IgnoreNon5HzPositions
        private bool ignoreNon5HzPositions;


        /// <summary>
        /// Gets or sets a value indicating whether the reader should ignore non-5Hz positions and just process the 5Hz positions.
        /// </summary>
        /// <value><c>true</c> if non-5Hz positions are to be ignored; otherwise, <c>false</c>.</value>
        public bool IgnoreNon5HzPositions
        {
            get { return ignoreNon5HzPositions; }
            set { ignoreNon5HzPositions = value; }
        }
        #endregion

        #region Convert1HzTo5Hz
        private bool convert1HzTo5hz;


        /// <summary>
        /// Gets or sets a value indicating whether the reader should convert 1Hz to 5Hz positions by adding "virtual" 
        /// positions in bewteen 1Hz positions.
        /// </summary>
        /// <value><c>true</c> if "virtual" 5Hz positions are to be inserted; otherwise, <c>false</c>.</value>
        public bool Convert1HzTo5Hz
        {
            get { return convert1HzTo5hz; }
            set { convert1HzTo5hz = value; }
        }
        #endregion




    }
}
